package ar.edu.ufasta.presupuestos.servicios.web;

import ar.edu.ufasta.presupuestos.servicios.web.netpacks.InfoClienteRequest;
import ar.edu.ufasta.presupuestos.servicios.web.netpacks.InfoPresupuestoRequest;
import ar.edu.ufasta.presupuestos.servicios.web.netpacks.ListaPresupuestoRequest;
import ar.edu.ufasta.presupuestos.servicios.web.netpacks.LoginRequest;
import ar.edu.ufasta.presupuestos.servicios.web.netpacks.RequestPack;
import ar.edu.ufasta.presupuestos.servicios.web.netpacks.TransaccionPresupuestoRequest;

/**
 * Factory estatico de paquetes de pedidos del Sitio web de clientes
 * @author Carlos
 *
 */
public class StaticRequestFactory {

	private static StaticRequestFactory instancia;

	private StaticRequestFactory(){
		
	}
	
	public static StaticRequestFactory getInstancia(){
		if (instancia == null){
			instancia = new StaticRequestFactory(); 
		}
		return instancia;
	}
	
	public RequestPack makeRequestPack(Integer protocol,Integer operationCode){
		RequestPack request = null;
		switch (operationCode) {
		case Constantes.PACK_LOGIN:
			request = new LoginRequest();
			break;
		case Constantes.PACK_LOGOUT:
			request = new LoginRequest();
			break;
		case Constantes.PACK_CONSULTA_CLIENTE:
			request = new InfoClienteRequest();
			break;
		case Constantes.PACK_LISTA_PRESUPUESTO:
			request = new ListaPresupuestoRequest();
			break;
		case Constantes.PACK_CONSULTA_PRESUPUESTO:
			request = new InfoPresupuestoRequest();
			break;
		case Constantes.PACK_APROVAR_PRESUPUESTO:
			request = new TransaccionPresupuestoRequest();
			break;
		default:
			// Paquete desconocido			
			break;
		}
		return request;
	}
	
}
